<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 练手题
    // setTimeout(function () {
    //     console.log('定时器开始啦')
    // });

    // new Promise(function (resolve) {
    //     console.log('马上执行for循环啦');
    //     for (var i = 0; i < 10000; i++) {
    //         i == 99 && resolve();
    //     }
    // }).then(function () {
    //     console.log('执行then函数啦')
    // });

    // console.log('代码执行结束');



    // console.log('1');

    // setTimeout(function () {
    //     console.log('2');
    //     process.nextTick(function () {
    //         console.log('3');
    //     })
    //     new Promise(function (resolve) {
    //         console.log('4');
    //         resolve();
    //     }).then(function () {
    //         console.log('5')
    //     })
    // })
    // process.nextTick(function () { 
    //     console.log('6');
    // })
    // new Promise(function (resolve) {
    //     console.log('7');
    //     resolve();
    // }).then(function () {
    //     console.log('8')
    // })

    // setTimeout(function () {
    //     console.log('9');
    //     process.nextTick(function () {
    //         console.log('10');
    //     })
    //     new Promise(function (resolve) {
    //         console.log('11');
    //         resolve();
    //     }).then(function () {
    //         console.log('12')
    //     })
    // })
    // 1 7 6 8 2 4 3 5 9 11 10 12 
</script>

<script>
    
    async function async1() {
        console.log('async1 start');
        await async2();
        console.log('async1 end');
    }
    async function async2() {
        console.log('async2');
    }
    console.log('script start');
    setTimeout(function () {
        console.log('setTimeout');
    }, 0)
    async1();
    new Promise(function (resolve) {
        console.log('promise1');
        resolve();
    }).then(function () {
        console.log('promise2');
    });
    console.log('script end');

</script>

</html>